1. Field
This disclosure relates generally to data processing systems, and more specifically, to peripheral or input/output (I/O) management techniques whereby operations are mapped from one domain to another.
2. Related Art
In a computational system that includes computing resources (e.g., processor cores), storage resources and input/output (I/O) resources, mechanisms are often needed to manage transactions, operations or accesses that cross from one domain to another (such as between an I/O domain and a memory coherence domain). Often these mechanisms are used to map addresses or other identifiers while maintaining isolation between different transacting entities, e.g., logical or physical I/O devices, execution processes and/or virtual machines or partitions.
For example, isolation of memory address spaces (e.g., in a multiprocessor or in a virtualization system that exposes multiple virtual processors) is typically achieved using a memory management unit (MMU) that maps virtual memory addresses to physical memory using page table entries that limit the visibility of the processor to the partition's own resources. Mapping and isolation mechanisms can also be employed with respect to I/O transactions (or accesses) in devices or functional blocks commonly known as IOMMUs or peripheral access management units (PAMUs).
In some access management unit implementations, whether styled or deployed as an MMU, IOMMU or PAMU, it can be desirable to map operations as well as addresses or other identifiers. For example, because the accesses specified for an I/O domain typically differ from those in a memory coherence domain, operation specifiers may be translated at a domain boundary. As conventionally implemented, such operation translations are static and applied uniformly to all accesses, irrespective of the specific I/O device involved.
Unfortunately, the increasing diversity of I/O devices and increasingly complex transaction semantics supported in some modern interconnect fabrics tend to create formidable access management challenges. In some cases, implementations that employ static uniformly applied operation translations can remain tethered to a lowest common denominator of operation semantics. For these and other reasons, greater flexibility and improved techniques are desired.
The use of the same reference symbols in different drawings indicates similar or identical items.